 var table ,form ,laypage ,layer ,element ,laydate ,upload//时间组件
 var selectType=9;
$(function(){	
	 layui.use(['table','form','laypage','layer', 'element', 'laydate','upload'], function(){
         table = layui.table;
         form=layui.form;
         laypage = layui.laypage ;//分页
         layer = layui.layer ;//弹层
         element = layui.element; //元素操作
         laydate = layui.laydate; //时间组件 
         upload = layui.upload;
         //下拉字典选择
         dictPublicfun()
		//监听表格数据	   
		table.render({
		    elem: '#tabledata',
		    height: $(window).height()-200,		   
		    text: {
			    none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
			  },
			method: 'post',  
			loading: true,
		    url: '/sysUser/getList.do' ,//数据接口
		    headers: setHeader(),
		    parseData: function(res){
                return res.resultData;
            },
            response: {
                statusName: 'status', //规定数据状态的字段名称，默认：code
                statusCode: 200, //规定成功的状态码，默认：0
                msgName: 'hint', //规定状态信息的字段名称，默认：msg
                countName: 'total', //规定数据总数的字段名称，默认：count
                dataName: 'data' //规定数据列表的字段名称，默认：data
            },
		    page: true, //开启分页
		    cols: [[    //表头
		      {field: 'id', title: 'ID',   align:'center',hide:true,width:5},
		      {field: 'xuhao', title: '序号',  align:'center', type:'numbers',width:50,fixed:'left'},
		      {field: '', title: '头像', align:'left',width:120,
		    	  templet: function(data){
		    		  if(data.imageZh==null||data.imageZh==""){
		    			  return ""
		    		  }else{
			    		  return "<a class='lookurladdress' lay-event='lookimgtx' title='图片查看'   href='javascript:void(0);'>"+
				    		        "<ul id='img_"+data.image+"'>"+
										"<li><img data-original='"+data.imageZh+"' src='"+data.imageZh+"' style='width:100%;height:100%'/></li>"+
									 "</ul>"+
								 "</a>" 
		    		  }			 
					form.render();//需要渲染一下
		    	  }
		       },
		      {field: 'userName', title: '用户名称', align:'left',width:180},
		      {field: 'name', title: '姓名', align:'left',width:150},
		      {field: 'isenable', title: '冻结/激活', align:'left',width:100,
		    	  templet:function(data){    // 0.否 1.是           		
	            		var flag='';
	            		if(data.state==0){
	            			flag='checked'
	            		}
	            		return '<div class="BTNSHOW ISENABLE"><input type="checkbox" name="isenable"  linkid='+data.id+' '+flag+' lay-filter="switchfile" lay-event="switch" lay-skin="switch" lay-text="激活|冻结"></div>'
		            }  
		      },
		      //{field: 'pwd', title: '密码', align:'left',width:150,hide:true,},
		      {field: 'phone', title: '手机号', align:'left',width:150},
		      {field: 'typeZh', title: '类型', align:'left',width:150},		    
		      {field: '', title: '创建时间', align:'center',width:150, 
		    	  templet: function(data){
			  			return changeTime(data.createTime)					        							        
			  		}  
		      },
		      {field: 'createUname', title: '创建人', align:'center',width:150},
		      {field: 'remarks', title: '描述',align:'left',width:200},
		      {field: '', title: '操作', align:'center',width:180,fixed:'right',
			      templet: function(data){
						return '<div class="layui-btn-group">'+	  
	                             '<a href="javascript:;" class="layui-btn  layui-btn-xs BTNSHOW  BTNSHOW_EDIT" lay-event="edit">编辑</a>'+
	                             '<a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs BTNSHOW BTNSHOW_DELETE" lay-event="del" >删除</a>'+	                             
                               '</div>'   
					}
		      }
		    ]],
		    done: function (res) {
		    	 permissionFUN()//功能按钮权限
		    	 if(res.status!=200){
		    		if(res.status == 666){
		    			  TIMEOUT(); 
	  		        }else{
                	  $(".layui-none").text(res.resultMsg)
	  		        }  
                }
            }
		});
       	//是否启用监听方案swith  
        form.on('switch(switchfile)', function(num){
         	var checkbox = $(this);//当前的swith
     	    var linkid =num.elem.attributes['linkid'].nodeValue;//获取自定义方案id
     	    var switchtype =num.elem.name;//方案开关类型：
     	    var checkswith=num.elem.checked; //开关是否开启，true或者false
     	    var inParam={};
     	    inParam.id = linkid;
     	    if(checkswith){
     	    	inParam[switchtype]=0//开关的值
     	    	
     	    }else{
     	    	inParam[switchtype]=1//开关的值
     	    } 
     	    var requestData ={"id":linkid};
   	  	$.ajax({
   	           url: "/sysUser/updateState.do",               //请求地址
   	           type: "POST",              //请求类型
   	           data:formatParam(requestData),              //请求数据
   	           timeout: 200000,                //请求超时时间(毫秒)
   	           headers: setHeader(),
   	           success:function(res){         //请求成功
   	        	   if(res.status == 200)
   	  				{ 
   	        		   checkbox.prop("checked",checkswith);
   		  				form.render("checkbox"); 					
   	  				}else if(res.status == 666){
   	  				    TIMEOUT(); 
   	  	            }else{
   	  					checkbox.prop("checked",!checkswith);
   		  				form.render("checkbox");
   	  				} 
   	        	   layer.msg(res.resultMsg, {icon: res.icon});
               }
             })	    	   	     
         });
        //表单验证
        form.verify({  
        	 ftype: function(value, item){     		  
	      			if(validate.isBlank(value))
		      			{
		      				return "请选择用户类型";
		      			}
		      },
      	  fusername: function(value, item){//用户名验证
      		  
      			if(validate.isBlank(value))
      			{
      				return "请输入用户名";
      			}
      			if(!validate.isLength(value,2,50))
      			{
      				return "用户名长度应在2-50个字符之间";
      			}
      	  
      		    if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value))
      		    {
      		      return '用户名不能有特殊字符';
      		    }
      		    if(/(^\_)|(\__)|(\_+$)/.test(value))
      		    {
      		      return '用户名首尾不能出现下划线\'_\'';
      		    }
      		    //如果是新增验证用户名是否存在
      		    if($('#id').val() == '')
      		  	{
      		  		var msg;
      		  		$.ajax({
      		  			async:false,//同步请求
      		  			url:'usernameExist.json?username='+value,
      		  			dataType:'json',
      		  			success:function(json){
      		  				if(json.valid)
      		  				{
      		  					msg = "用户名已经存在！";
      		  				}
      		  			}
      		  		});
      		  		return msg;
      		  	}
      	  }
      	  ,fname: function(value, item){//姓名验证
      			if(validate.isBlank(value))
      			{
      				return "请输入用户真实姓名";
      			}
        			if(!validate.isLength(value,1,50))
      		    {
      		      return '姓名长度不能超过50个字符';
      		    }
      		    
      	  }
      	  ,fpassword: function(value, item){//密码验证
      			if(validate.isBlank(value))
      			{
      				return "请输入密码";
      			}
      			if(!validate.isLength(value,4,50))
      		    {
      		      return '密码长度应在4-50个字符之间';
      		    }
      	  }
      	  ,fconfirmPassword: function(value, item)//确认密码验证
      	  {
      			if(validate.isBlank(value))
      			{
      				return "请确认密码";
      			}
      			if(!validate.equals($('#userPassword_edit').val(),value))
      			{
      			 	return "两次密码输入不一致！";
      			}
      	  },
      	 fProvince: function(value, item){     		  
 			if(validate.isBlank(value))
 			{
 				return "请选择省份";
 			}
	 	  },
	 	 fcity: function(value, item){    		  
	 			if(validate.isBlank(value))
	 			{
	 				return "请选择市";
	 			}
		  	  },
		  	 fDistrict: function(value, item){     		  
	 			if(validate.isBlank(value))
	 			{
	 				return "请选择区县";
	 			}
	 	    },  	  
     });
  
		//监听行工具事件
        table.on('tool(test)', function (obj) {
			form.render();//需要渲染一下
            var data = obj.data;
            //编辑删除功能
            if (obj.event === 'del') {  //删除
                layer.confirm('真的要删除这行数据？', function (index) {
                	 var requestData = {"id": data.id, "other":data};
              	  	$.ajax({
          	           url: "/sysUser/delete.do",               //请求地址
          	           type: "POST",              //请求类型
          	           data:formatParam(requestData),              //请求数据
          	           timeout: 200000,                //请求超时时间(毫秒)
          	           headers: setHeader(),
          	           success:function(res){         //请求成功
          	        	   if(res.status == 200)
          	  				{
          	    				layer.msg(res.resultMsg, {icon: res.icon},function(){
          	    					 layer.closeAll();//关闭加载层
          	    					table.reload("tabledata", {});
          						}); 					
          	  				}else if(res.status == 666){
          	  				    TIMEOUT();         	  		           
          	  		        }else{
          	  					layer.msg('用户删除失败', {icon: 5});
          	  				}
          	  				      
                        }
                     })
                    return false;
                });
            }else if (obj.event === 'edit') { //编辑
      	    	var num = obj.data;
      	    	var fullindex=layer.open({
			        type: 2,
			        area: ['100%', '100%'],
			        fix: false, //不固定
			        maxmin: true,
			        shadeClose: true,
			        shade:0.4, //遮罩层
			        title: ['用户详情','background:#1E9FFF;color:#fff'],
			        content: "/res/page/user/user_form.html?id="+data.id+'&permissionId='+permissionId
			    });	
      	    	layer.full(fullindex);
			    form.render();
      	    	//window.location.href="/res/page/user/user_form.html?id="+data.id+'&permissionId='+permissionId
            }else if(obj.event === 'lookimgtx'){ //图片查看
	           	 var viewer = new Viewer(document.getElementById('img_'+data.image), {
		     			url: 'data-original',
		     			navbar: false
		     		});
            }    
			form.render();//需要渲染一下	   
        });     
	    // 查询按钮提交查询信息
	    form.on('submit(queryData)', function(data){
	        // 组装查询条件
	        var reqData = getConditionValue();
	        // 重新加载表格数据
	        table.reload("tabledata", {
	             where: {"reqData" : JSON.stringify(reqData)}
		        ,page: {
		            curr: 1 //重新从第 1 页开始
		          }
	        });
	    });
	});
})
